import axios from 'axios'
import {
	Message,
	MessageBox
} from 'element-ui'
import store from '../store'
import {
	getToken,
	getManagerId,
	removeToken,
	removeManagerId,
	removeNikeName,
	setToken
} from '@/utils/auth'

// 创建axios实例
const service = axios.create({
	baseURL: process.env.BASE_API, // api的base_url
	timeout: 100000 // 请求超时时间
})

// request拦截器
service.interceptors.request.use(config => {
	if (getToken() != undefined) {
		config.headers['token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
		config.headers['managerId'] = getManagerId()
	}
	return config
}, error => {
	// Do something with request error
	console.log(error) // for debug
	Promise.reject(error)
})

// respone拦截器
service.interceptors.response.use(
	response => {
		//后台反3001,需要重新登录
		if (response.data.code == '3001') {
			removeToken();
			removeManagerId();
			removeNikeName()
			location.reload()
		}
		var token = response.headers.token
		if (token != undefined) {
			setToken(token)
		}
		return response.data
	}, error => {
		console.log('err' + error) // for debug
		Message({
			message: error.message,
			type: 'error',
			duration: 5 * 1000
		})
		return Promise.reject(error)
	})
export default service
